Este análisis tiene como objetivo calcular probabilidades condicionales en el dataset Startup Data, respondiendo preguntas como:
¿Cuál es la probabilidad de que una startup sea rentable dado su número de rondas de financiamiento?
¿Cómo influye la cantidad de empleados en la rentabilidad de la startup?
¿Cuál es la probabilidad de que una startup con alto market share tenga un alto revenue?
Estos cálculos permiten evaluar factores clave que impactan el éxito de una startup y ayudar en la toma de decisiones estratégicas.
# 📌 Cargar librerías necesarias
library(here) # Manejo de rutas dinámicas
library(janitor) # Limpieza de nombres de columnas
library(summarytools) # Resumen estadístico detallado
library(ggplot2) # Gráficos
library(dplyr) # Manipulación de datos
library(plotly) # Gráficos Interactivos
# 📌 Configuración de gráficos globales
theme_set(theme_minimal())
# 📌 Cargar scripts de configuración y preprocesamiento
source(here("reportes/Proy_Startup_Data/00_CONFIGURACION.r"))
source(here("scripts/utils.r"))
source(here("scripts/1_preprocesamiento_esp_dataset.r"))
source(here("scripts/3_analisis_probabilidad.r"))
# 📌 Cargar dataset limpio
dataset_startup <- preprocesar_datos(here("datasets/startup_data_limpio.csv"), "Startup Data")
## 📥 Cargando datos del proyecto: Startup Data
## 🧹 Realizando limpieza de datos...
## 📊 Aplicando preprocesamiento específico para Startup Data...
## ✅ Preprocesamiento completado para: Startup Data
Analizamos la relación entre variables clave del éxito en startups.
# Calcular probabilidades condicionales
resultados_financiamiento_vs_rentabilidad <- calcular_probabilidades(
data = dataset_startup,
condicionante = "funding_rounds",
objetivo = "profitable",
bins = 5 # Dividir en 5 intervalos
)
# Mostrar resultados
cat("Tabla de contingencia:\n")
## Tabla de contingencia:
print(resultados_financiamiento_vs_rentabilidad$tabla_contingencia)
## # A tibble: 10 × 3
## funding_rounds profitable n
## <fct> <fct> <int>
## 1 1 0 64
## 2 1 1 45
## 3 2 0 51
## 4 2 1 46
## 5 3 0 63
## 6 3 1 42
## 7 4 0 57
## 8 4 1 27
## 9 5 0 49
## 10 5 1 56
cat("\nProbabilidades condicionales:\n")
##
## Probabilidades condicionales:
print(resultados_financiamiento_vs_rentabilidad$probabilidades_condicionales)
## # A tibble: 10 × 4
## funding_rounds profitable n prob_condicional
## <fct> <fct> <int> <dbl>
## 1 1 0 64 0.587
## 2 1 1 45 0.413
## 3 2 0 51 0.526
## 4 2 1 46 0.474
## 5 3 0 63 0.6
## 6 3 1 42 0.4
## 7 4 0 57 0.679
## 8 4 1 27 0.321
## 9 5 0 49 0.467
## 10 5 1 56 0.533
cat("\nProbabilidades marginales de rentabilidad:\n")
##
## Probabilidades marginales de rentabilidad:
print(resultados_financiamiento_vs_rentabilidad$probabilidades_marginales)
## # A tibble: 2 × 3
## profitable n prob_marginal
## <fct> <int> <dbl>
## 1 0 284 0.568
## 2 1 216 0.432
# Calcular probabilidades condicionales
resultados_empleados_vs_rentabilidad <- calcular_probabilidades(
data = dataset_startup,
condicionante = "employees",
objetivo = "profitable",
bins = 5 # Dividir en 5 intervalos
)
# Mostrar resultados
cat("Tabla de contingencia:\n")
## Tabla de contingencia:
print(resultados_empleados_vs_rentabilidad$tabla_contingencia)
## # A tibble: 10 × 3
## employees profitable n
## <fct> <fct> <int>
## 1 [7.03,1.01e+03] 0 53
## 2 [7.03,1.01e+03] 1 37
## 3 (1.01e+03,2e+03] 0 50
## 4 (1.01e+03,2e+03] 1 44
## 5 (2e+03,3e+03] 0 63
## 6 (2e+03,3e+03] 1 48
## 7 (3e+03,3.99e+03] 0 73
## 8 (3e+03,3.99e+03] 1 49
## 9 (3.99e+03,4.99e+03] 0 45
## 10 (3.99e+03,4.99e+03] 1 38
cat("\nProbabilidades condicionales:\n")
##
## Probabilidades condicionales:
print(resultados_empleados_vs_rentabilidad$probabilidades_condicionales)
## # A tibble: 10 × 4
## employees profitable n prob_condicional
## <fct> <fct> <int> <dbl>
## 1 [7.03,1.01e+03] 0 53 0.589
## 2 [7.03,1.01e+03] 1 37 0.411
## 3 (1.01e+03,2e+03] 0 50 0.532
## 4 (1.01e+03,2e+03] 1 44 0.468
## 5 (2e+03,3e+03] 0 63 0.568
## 6 (2e+03,3e+03] 1 48 0.432
## 7 (3e+03,3.99e+03] 0 73 0.598
## 8 (3e+03,3.99e+03] 1 49 0.402
## 9 (3.99e+03,4.99e+03] 0 45 0.542
## 10 (3.99e+03,4.99e+03] 1 38 0.458
cat("\nProbabilidades marginales de rentabilidad:\n")
##
## Probabilidades marginales de rentabilidad:
print(resultados_empleados_vs_rentabilidad$probabilidades_marginales)
## # A tibble: 2 × 3
## profitable n prob_marginal
## <fct> <int> <dbl>
## 1 0 284 0.568
## 2 1 216 0.432
📌 Probabilidad de Rentabilidad según el Número de Rondas de Financiamiento
p_financiamiento_vs_rentabilidad <- visualizar_probabilidad_condicional(
data = dataset_startup,
condicionante = "funding_rounds",
objetivo = "profitable",
titulo = "Análisis Rentabilidad según el Número de Rondas de Financiamiento",
xlab = "Número de Rondas de Financiamiento",
guardar = TRUE,
ruta_guardado = here("reportes/Proy_Startup_Data/resultados_generados/probabilidad_condicional_financiamiento_vs_rentabilidad.png"),
bins = 5
)
# Mostrar gráfico interactivo
p_financiamiento_vs_rentabilidad
📌 Probabilidad de Rentabilidad según el Número de Empleados
p_empleados_vs_rentabilidad <- visualizar_probabilidad_condicional(
data = dataset_startup,
condicionante = "employees",
objetivo = "profitable",
titulo = "Probabilidad de Rentabilidad según el Número de Empleados",
xlab = "Número de Empleados (Intervalos)",
guardar = TRUE,
ruta_guardado = here("reportes/Proy_Startup_Data/resultados_generados/probabilidad_condicional_empleados_vs_rentabilidad.png"),
bins = 5
)
# Mostrar gráfico interactivo
p_empleados_vs_rentabilidad
📌 Probabilidad de Alto Revenue según Market Share
p_marketshare_vs_revenue <- visualizar_probabilidad_condicional(
data = dataset_startup,
condicionante = "market_share_percent",
objetivo = "revenue_m_usd",
titulo = "Probabilidad de Alto Revenue según Market Share",
xlab = "Market Share (%)",
guardar = TRUE,
ruta_guardado = here("reportes/Proy_Startup_Data/resultados_generados/probabilidad_condicional_marketshare_vs_revenue.png"),
bins = 5
)
# Mostrar gráfico interactivo
p_marketshare_vs_revenue